package com.itheima.homework;

import java.util.Random;

/*
一个大V直播抽奖，奖品是现金红包，分别有{2,588,888,1000,10000}五个奖金。
请使用代码模拟抽奖，打印出每个奖项，奖项的出现顺序要随机且不重复。打印效果如下：（随机顺序，不一定是下面的顺序）

888元的奖金被抽出
588元的奖金被抽出
10000元的奖金被抽出
1000元的奖金被抽出
2元的奖金被抽出
 */
public class Homework07 {
    public static void main(String[] args) {
        //1. 定义一个数组,用来管理五个奖金红包
        int[] arr = {2,588,888,1000,10000};

        //2. 随机抽数组中的元素,其实就是要生成数组的随机索引,根据随机索引去随机访问数组中的元素
        Random r = new Random();

        for (int i = 0; i < arr.length; i++) {
            //2.1 arr的索引范围: [0,4]
            int index = r.nextInt(arr.length);      // [0,4]

            // 判断本次抽奖是否有效
            if (arr[index] != 0) {
                //2.2  将index对应的元素进行打印,模拟抽奖动作
                System.out.println(arr[index] + "元的奖金被抽出");

                //2.3 将本次抽到的奖项从数组中移除: 就是用0去替代原数
                arr[index] = 0;
            }else{
                i--;
            }
        }

        //定义一个计数器
        int count = 0;
        while (true) {
            //判断奖池里还有没有奖
            if (count == arr.length){
                break;
            }
            //2.1 arr的索引范围: [0,4]
            int index = r.nextInt(arr.length);      // [0,4]
            // 判断本次抽奖是否有效
            if (arr[index] != 0) {
                //2.2  将index对应的元素进行打印,模拟抽奖动作
                System.out.println(arr[index] + "元的奖金被抽出");
                //2.3 有效抽奖次数+1
                count++;
                //2.4 将本次抽到的奖项从数组中移除: 就是用0去替代原数
                arr[index] = 0;
            }
        }
    }
}
